package com.bestcem.xm.member.entity.mysql;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.bestcem.xm.member.constant.CollectionConstant;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.springframework.util.StringUtils;

import java.util.Date;

@Getter
@Setter
@ToString
@TableName(CollectionConstant.MEMBER)
public class MemberEntity {

    @TableId("member_id")
    private String id;

    /**
     * 组织id
     */
    @TableField("org_id")
    private String orgId;

    /**
     * 联系人类型 0-个人联系人 1-机构联系人 2-内部联系人 3-隐藏的 4-项目
     */
    @TableField("member_type")
    private Integer memberType;

    /**
     * 联系人状态 0-活动的 1-禁用的 2-注销的 3-隐藏的 4-删除
     */
    @TableField("status")
    private Integer status;

    /**
     * 系统编号
     */
    @TableField("sys_id")
    private String sysId;

    /**
     * 来源
     */
    @TableField("source")
    private String source;

    /**
     * 微信头像url
     */
    private String avatar;

    /**
     * 联系人姓名
     */
    @TableField("name")
    private String name;

    /**
     * 微信昵称
     */
    private String nickname;

    /**
     * 电子邮箱 (邮箱与手机号必有其一)
     */
    @TableField("email")
    private String email;

    /**
     * 手机号码 (邮箱与手机号必有其一)
     */
    @TableField("phone")
    private String phone;

    /**
     * 性别
     */
    @TableField("gender")
    private String gender;

    @TableField("region")
    private String region;

    /**
     * 所属门店id
     */
    @TableField("store_id")
    private String storeId;

    /**
     * 备注
     */
    @TableField("content")
    private String content;

    /**
     * 微信openId
     */
    @TableField("open_id")
    private String openId;

    /**
     * 微信appId
     */
    @TableField("app_id")
    private String appId;

    /**
     * 微信unionId
     */
    @TableField("union_id")
    private String unionId;

    /**
     * 支付宝用户标识
     */
    @TableField("ali_pay_user_id")
    private String aliPayUserId;

    /**
     * 联系人编号
     */
    @TableField("member_no")
    private String memberNo;

    /**
     * 地址信息
     */
    @TableField("address")
    private String address;

    /**
     * 员工编号
     */
    @TableField("employee_id")
    private String employeeId;

    /**
     * 雇佣状态 0-无状态 1-在职 2-离职
     */
    @TableField("employee_status")
    private Integer employeeStatus;

    /**
     * 生日
     */
    @TableField("birthday")
    private Date birthday;

    /**
     * 所属部门
     */
    @TableField("department")
    private String department;

    /**
     * 职位
     */
    @TableField("position")
    private String position;

    /**
     * 机构编号
     */
    @TableField("institute_id")
    private String instituteId;

    /**
     * 机构名称
     */
    @TableField("institute_name")
    private String instituteName;

    /**
     * 用户标识
     */
    @TableField("user_id")
    private String userId;

    /**
     * 年龄
     */
    @TableField("age")
    private Integer age;

    /**
     * 联系人标签
     */
    @TableField("labels")
    private String labels;

    /**
     * 联系人扩展字段
     */
    @TableField("field_val_list")
    private String fieldValList;

    private String groups;

    private String groupSyncToken;

    /**
     * 创建时间
     */
    @TableField("create_time")
    private Date createTime;

    /**
     * 更新时间
     */
    @TableField("update_time")
    private Date updateTime;

    private String outNo;

    /**
     * 将前端参数映射到列名
     * @param name
     * @return
     */
    public static String mappingColumnName(String name){
        if(!StringUtils.hasText(name)){
            return name;
        }

        switch (name){
            default: return name;
        }
    }

}
